1. Technical Field
The present invention relates in general to the field of software application analysis and in particular to a method and apparatus for implementing a sampling performance analysis within a software application. Still more particularly, the present invention relates to a method and apparatus for implementing a sampling performance analysis within a multi-thread operating system having a high degree of isolation between applications.
2. Description of the Related Art
Performance analysis of software applications within a data processing system is a well known technique in the prior art. Two basic techniques are generally utilized for such analysis. Firstly, a timing strategy may be utilized to analyze a software application. A system clock may be utilized to time selected events within the application by placing so-called "hooks" within the code of the application and then storing the time at which each of these "hooks" occurs.
This technique works well; however, it is necessary to be able to modify the application within the operating system in order to insert the software "hooks." Selected operating systems, such as the OS/2 Operating System distributed by International Business Machines Corporation of Armonk, N.Y., include a high degree of isolation between applications within the operating system and are not easily modifiable. In such an operating system the user may not be aware of the internal workings of an application within the operating system and may not be able to easily modify the code within an application.
A second technique for analyzing a software application to locate hot spots or areas which may take excessive amounts of execution time is the so-called "Monte Carlo" sampling performance analysis wherein a the execution location of the code within an application is periodically captured and utilized to perform a statistical analysis of the execution of that application. As above, a Monte Carlo analysis technique may not be utilized for a software application within a multi-thread operating system which includes a high degree of isolation between applications, due to the protective nature of the operating system. Thus, the information necessary to perform a Monte Carol analysis is not readily available.
It should therefore be apparent that a need exists for a method and apparatus for performing an execution analysis of a selected application within a multi-thread operating system having a high degree of isolation between applications within the operating system.